﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL;
using System.Configuration;
using System.Transactions;

namespace BOL
{
    [Serializable]
    public class LoginBL
    {

        public bool Autenticar (string usuario, 
                                         string password)
        {

            bool result = false;
            RijndaelSimple r = new RijndaelSimple();
            dbGestionDataContext _db= new dbGestionDataContext(Parametros.strConnString);
          string passwordText= r.EncryptarPassword(password);  
            
            var a= from i in _db.Empleados
                   where i.usuario == usuario.Trim() & 
                   i.password == passwordText & 
                   i.tieneAcceso==true
                   select i;

            
            if (a.Count() > 0)
            {
                var q = a.First();
                this.idEmpleado = q.idInternal;
                result = true;
            }
            else
            { 
                
                //verificamos que  el usuario  Exista

                var b = from i in _db.Empleados
                        where i.usuario == usuario.Trim() 
                        select i;

                if (b.Count() > 0)
                {
                    //existe el usuario
                    throw new Exception("Verifique el password del usuario");
                }
                else
               {
                    throw new Exception("Usuario no registrado");
                }


            }
            return result;
        }
        public int idEmpleado { get; set; }
        
        public LoginInfo getUsuario()
        {
            
                return (from a in DbUtil.Db.Empleados
                        where a.idInternal == idEmpleado
                        select  new LoginInfo
                        {
                            idEmpleado=a.idInternal,
                            usuario=a.usuario,
                            nombre = a.descripcion
                            
                        }).First();
           


        }
    }
    
}
